﻿// using System;
// using System.Collections.Generic;
//
// public static class Extensions
// {
//     public static void ForEach<T>(this IEnumerable<T> ie, Action<T> action)
//     {
//         foreach (T obj in ie)
//             action(obj);
//     }
//     
//     public static Dictionary<string, object> JsonToDictionary(JToken token)
//     {
//         var result = new Dictionary<string, object>();
//  
//         switch (token.Type)
//         {
//             case JTokenType.Object:
//                 foreach (var prop in token.Children<JProperty>())
//                 {
//                     result[prop.Name] = JsonToDictionary(prop.Value);
//                 }
//                 break;
//  
//             case JTokenType.Array:
//                 var arrayIndex = 0;
//                 foreach (var item in token.Children())
//                 {
//                     result[arrayIndex.ToString()] = JsonToDictionary(item);
//                     arrayIndex++;
//                 }
//                 break;
//  
//             default:
//                 result["Value"] = ((JValue)token).Value;
//                 break;
//         }
//  
//         return result;
//     }
//
//     public static Dictionary<string, object> JsonToDictionary(this object token)
//     {
//         if (token is JObject jo)
//         {
//             return jo.ToObject<Dictionary<string, object>>();
//         }
//
//         return null;
//     }
//     
//     public static List<object> JsonToList(this object token)
//     {
//         if (token is JObject jo)
//         {
//             return jo.ToObject<List<object>>();
//         }
//         else if(token is JArray ja)
//         {
//             return ja.ToObject<List<object>>();
//         }
//
//         return null;
//     }
// }